package com.ruoyi.cs.service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.ruoyi.common.core.domain.Response;
import com.ruoyi.cs.domain.TMineClear;

/**
 * 排雷记录Service接口
 * 
 * @author liuzhisheng
 * @date 2022-12-13
 */
public interface ITMineClearService 
{
    /**
     * 查询排雷记录
     * 
     * @param id 排雷记录主键
     * @return 排雷记录
     */
    public TMineClear selectTMineClearById(String id);

    /**
     * 查询排雷记录列表
     * 
     * @param tMineClear 排雷记录
     * @return 排雷记录集合
     */
    public List<TMineClear> selectTMineClearList(TMineClear tMineClear);

    /**
     * 新增排雷记录
     * 
     * @param tMineClear 排雷记录
     * @return 结果
     */
    public int insertTMineClear(TMineClear tMineClear);

    /**
     * 修改排雷记录
     * 
     * @param tMineClear 排雷记录
     * @return 结果
     */
    public int updateTMineClear(TMineClear tMineClear);

    /**
     * 批量删除排雷记录
     * 
     * @param ids 需要删除的排雷记录主键集合
     * @return 结果
     */
    public int deleteTMineClearByIds(String[] ids);

    /**
     * 删除排雷记录信息
     * 
     * @param id 排雷记录主键
     * @return 结果
     */
    public int deleteTMineClearById(String id);

    /**
     * 扫雷统计
     * @param startTime
     * @param endTime
     * @return
     */
    public Response<HashMap> count(String startTime, String endTime);

    /**
     * 排雷详情接口
     * @param id
     * @return
     */
    public Response<TMineClear> info(String id);

    /**
     * 全名挑战展示详情数据
     * @param userId
     * @return
     */
    public Response<TMineClear> fullNameChallenge(String userId);

    /**
     * 刷新全名挑战饰品
     * @param userId
     * @return
     */
    public Response<TMineClear> RefreshTGoods(String userId) throws Exception;

    /**
     * 开始挑战
     * @return
     */
    public Response<String> startChallenge(String userId);

    /**
     * 开始闯关
     * @param userId
     * @param position
     * @return
     */
    public Response<TMineClear> startAdopt(String userId,int position);

    /**
     * 放弃挑战
     * @param userId
     * @return
     */
    public Response<TMineClear> waiver(String userId);

    /**
     * 是否复活挑战
     * @param userId
     * @param type
     * @return
     */
    public Response<TMineClear> riseChallenge(String userId,String type);

    /**
     * 扫雷排名
     * @param type
     * @param userId
     * @return
     */
    public Map mineClearRanking(String type,String userId);
}

